home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / dora / doraedit.plp < prev    next >
Text File  |  1993-11-30  |  26KB  |  1,088 lines

  1. /*    共通ルーチン    */
  2. /*    入力ファイル選択(ワイルドカード不可)    */
  3. %FILEsel0{
  4.     [MSG,TYP]
  5.     SNDMSG({erande_f.snd});
  6.     footnote(MSG);
  7.     case    (TYP={},
  8.         {Yes},{OLDFILE:=@filesel},
  9.         {No},{OLDFILE:=@filesel(TYP)}
  10.         );
  11.     case    (OLDFILE={},
  12.         {Yes},{im({})},
  13.         {No},{
  14.         case    (@wild(OLDFILE),
  15.             {Yes},{
  16.             display({ワイルドカード指定はできません\n});
  17.             FILEsel0(MSG,TYP);
  18.             },
  19.             {No},{
  20.             case    (@nochar(@getcdir)==3,
  21.                 {Yes},{OLDFILE:=@getcdir|OLDFILE},
  22.                 {No},{OLDFILE:=@getcdir|{\}|OLDFILE});
  23.             case    (@filechk(OLDFILE),
  24.                 {No},{
  25.                 SNDMSG({okasi_f.snd});
  26.                 display(OLDFILE|{がありません\n});
  27.                 FILEsel0(MSG,TYP);
  28.                 },
  29.                 {Yes},{im(OLDFILE)}
  30.                 )})})};
  31. /*    入力ファイル選択(ワイルドカード可)    */
  32. %FILEsel1{
  33.     [MSG,TYP]
  34.     SNDMSG({erande_f.snd});
  35.     footnote(MSG);
  36.     case    (TYP={},
  37.         {Yes},    {OLDFILE:=@filesel},
  38.         {No},    {OLDFILE:=@filesel(TYP)}
  39.         );
  40.     case    (OLDFILE={},
  41.         {Yes},{im({})},
  42.         {No},
  43.         {
  44.         case    (@wild(OLDFILE),
  45.             {Yes},
  46.             {
  47.             case    (@nochar(@getcdir)==3,
  48.                     {Yes},
  49.                     {OLDFILE:=@getcdir|OLDFILE},
  50.                     {No},
  51.                     {OLDFILE:=@getcdir|{\}|OLDFILE}
  52.                     );
  53.             im(OLDFILE);
  54.             },
  55.             {No},
  56.             {
  57.             case    (@nochar(@getcdir)==3,
  58.                     {Yes},
  59.                     {OLDFILE:=@getcdir|OLDFILE},
  60.                     {No},
  61.                     {OLDFILE:=@getcdir|{\}|OLDFILE}
  62.                     );
  63.              case    (@filechk(OLDFILE),
  64.                     {No},
  65.                     {
  66.                     SNDMSG({okasi_f.snd});
  67.                     display(OLDFILE|{がありません\n});
  68.                     FILEsel1(MSG,TYP);
  69.                     },
  70.                     {Yes},{im(OLDFILE)}
  71.                     );
  72.             });
  73.         });
  74.     };
  75.  
  76. /*     表示終了待ち    */
  77. %WAITLOOP{
  78.     loop    ({
  79.         footnote({終了},{b});
  80.         waitx();
  81.         case    (@xtype,
  82.             101,{im({No})},201,{im({No})},
  83.             ,{im({Yes})}
  84.             );
  85.         });
  86.     };
  87.  
  88. /*    ファイル基本操作    */
  89. /*    ファイル表示    */
  90. %DISPLAY{
  91.     loop    ({
  92.         case    (@FILEsel0({表示するファイルを指定して下さい},)={},
  93.             {Yes},{im({No})},
  94.             {No},
  95.             {
  96.             display(@xc({1B})|{[37m});
  97.             footnote({ファイル表示  }|OLDFILE);
  98.             command({type }|OLDFILE|{|more});
  99.             loop    ({
  100.                 footnote({終了},{b});waitx();
  101.                 case(@xtype,101,{im({No})},201,{im({No})},
  102.                     ,{im({Yes})});
  103.                 });
  104.             im({Yes});
  105.             });});};
  106. /*    ファイル複写    */
  107. %COPY    {
  108.     %FILEsel2{
  109.         SNDMSG({erande_f.snd});
  110.         footnote({複写先のファイルを指定して下さい  複写元=}|OLDFILE);
  111.         NEWFILE:=@filesel;NEWDIR:=@getcdir;
  112.         case(@nochar(NEWDIR)==3,{No},{NEWDIR:=NEWDIR|{\}});
  113.         case(@wild(OLDFILE),{Yes},{NEWFILE:={*.*}});
  114.         case(NEWFILE={},{Yes},{NEWFILE:={*.*}});
  115.         NEWFILE:=NEWDIR|NEWFILE;
  116.         };
  117.  
  118.     loop    ({
  119.         case(@FILEsel1({複写元のファイルを指定して下さい},)={},
  120.             {Yes},{im({No})},
  121.             {No},
  122.             {
  123.             FILEsel2;
  124.             case(@filechk(NEWFILE),
  125.                 {Yes},
  126.                 {
  127.                 SNDMSG({kaknin_f.snd});
  128.                 footnote({ファイル複写  }|
  129.                         OLDFILE|{ -> }|NEWFILE);
  130.                 select    ({複写先のファイルに上書き}|
  131.                         {してもいいですか?},
  132.                     Wtime4,,
  133.                     { は い },
  134.                     {copyfile(OLDFILE,NEWFILE)},
  135.                     { いいえ },
  136.                     );
  137.                 },
  138.                 {No},{copyfile(OLDFILE,NEWFILE)}
  139.                 );
  140.             im({Yes});
  141.             });});};
  142. /*    ファイル移動    */
  143. %MOVE    {
  144.     %FILEsel2{
  145.         SNDMSG({erande_f.snd});
  146.         footnote({移動先のディレクトリへ移動し右クリックして下さい  移動元=}|
  147.                 OLDFILE);
  148.         filesel;NEWDIR:=@getcdir;
  149.         case(@nochar(NEWDIR)==3,
  150.             {Yes},{NEWFILE:=NEWDIR|@tail(OLDFILE,{\})},
  151.             {No},{NEWFILE:=NEWDIR|{\}|@tail(OLDFILE,{\})});
  152.         };
  153.     loop    ({
  154.         case(@FILEsel1({移動元のファイルを指定して下さい},)={},
  155.             {Yes},{im({No})},
  156.             {No},
  157.             {
  158.             FILEsel2;
  159.             var    fileno    [3];
  160.             case(@wild(OLDFILE),
  161.                 {No},
  162.                 {case    (@filechk(NEWFILE),
  163.                     {Yes},
  164.                     {
  165.                     SNDMSG({kaknin_f.snd});
  166.                     footnote({ファイル移動  }|
  167.                         OLDFILE|{ -> }|NEWFILE);
  168.                     select    ({移動先のファイルに上書き}|
  169.                         {してもいいですか?},
  170.                         Wtime4,,
  171.                         { は い },{fileno:={1}},
  172.                         {  いいえ  },{fileno:={0}});
  173.                     },
  174.                     {No},{fileno:={1}});
  175.                 },
  176.                 {Yes},{NEWFILE:=@body(NEWFILE,,{\})|{\*.*};
  177.                     fileno:={n}}
  178.                 );
  179.             case(fileno,
  180.                 {1},
  181.                 {
  182.                 delfile(TEMP2|{_moptemp.tmp});
  183.                 command({copy }|OLDFILE|{ }|NEWFILE|
  184.                     { > }|TEMP2|{_moptemp.tmp});
  185.                 case    (@read(TEMP2|{_moptemp.tmp}),
  186.                     {        1 個のファイルを}|
  187.                     {コピーしました.\n},
  188.                     {delfile(OLDFILE)});
  189.                 },
  190.                 {n},
  191.                 {
  192.                 delfile(TEMP2|{_moptemp.tmp});
  193.                 command({copy }|OLDFILE|{ }|NEWFILE|
  194.                     { > }|TEMP2|{_moptemp.tmp});
  195.                 var    N    [4];
  196.                 N:=0;
  197.                 loop    ({
  198.                     N:=N+1;
  199.                     %f1 @read(TEMP2|{_moptemp.tmp},N,1);
  200.                     case(@tail(f1,{個のファイルを}),
  201.                         {コピーしました.\n},
  202.                         {im({No})},
  203.                         ,
  204.                         {
  205.                         case(@head(f1,{\n})<>
  206.                         TEMP2|{_MOPTEMP.TMP},
  207.                         {Yes},
  208.                         {command({del }|
  209.                             @head(f1,{\n}))});
  210.                         im({Yes});
  211.                         });});
  212.                 },
  213.                 {0},
  214.                 );
  215.             im({Yes});
  216.             });});};
  217. /*    ファイル名変更    */
  218. %RENAME    {
  219.     %FILEsel2{
  220.         SNDMSG({nyuryo_f.snd});
  221.         footnote({新ファイル名を入力して下さい  旧ファイル名=}|OLDFILE);
  222.         NEWFILE:=@input({新ファイル名を入力して下さい},,@tail(OLDFILE,{\}));
  223.         im(NEWFILE);
  224.         };
  225.     loop    ({
  226.         case(@FILEsel1({ファイル名を変更するファイルを}|
  227.                     {指定して下さい},)={},
  228.             {Yes},{im({No})},
  229.             {No},
  230.             {
  231.             case(@FILEsel2={},
  232.                 {Yes},{im({No})},
  233.                 {No},
  234.                 {
  235.                 footnote({ファイル名変更  }|
  236.                         OLDFILE|{ -> }|NEWFILE);
  237.                 copyfile(OLDFILE,NEWFILE);
  238.                 delfile(OLDFILE);
  239.                 im({Yes});
  240.                 });});});};
  241. /*    ファイル削除    */
  242. %DELETE    {
  243.     loop    ({
  244.         case(@FILEsel1({削除するファイルを指定して下さい},)={},
  245.             {Yes},{im({No})},
  246.             {No},
  247.             {
  248.             SNDMSG({kaknin_f.snd});
  249.             footnote({ファイル削除  }|OLDFILE);
  250.             select    (OLDFILE|{を削除してもいいですか?},
  251.                 Wtime4,,
  252.                 { は い },
  253.                 {case    (@tail(OLDFILE,{\})={*.*},
  254.                     {Yes},{command({echo y|del }|OLDFILE)},
  255.                     {No},{command({del }|OLDFILE)})},
  256.                 { いいえ },
  257.                 );
  258.             im({Yes});
  259.             });});};
  260. /*    全ファイル削除    */
  261. %DELall    {
  262.     SNDMSG({erande_f.snd});
  263.     footnote({全ファイル削除するディレクトリへ移動して}|
  264.             {左クリックして下さい});
  265.     filesel;
  266.     OLDDIR:=@getcdir;
  267.     SNDMSG({kaknin_f.snd});
  268.     case    (@nochar(OLDDIR)==3,
  269.         {Yes},    {footnote({全ファイル削除  }|OLDDIR|{*.*})},
  270.         {No},    {footnote({全ファイル削除  }|OLDDIR|{\*.*})}
  271.         );
  272.     select    (OLDDIR|{の全ファイルを削除してもいいですか?},
  273.         Wtime4,,
  274.         { は い },
  275.         {setcdir(OLDDIR);command({echo y|del *.*})},
  276.         { いいえ },
  277.         );
  278.     };
  279. /*    ファイル一覧表示    */
  280. %DIR    {
  281.     loop    ({
  282.         case(@FILEsel1({一覧表示するファイルを指定してください  },)={},
  283.             {Yes},
  284.             {
  285.             OLDDIR:=@getcdir;SNDMSG({kaknin_f.snd});
  286.             footnote({ファイル一覧表示  }|OLDDIR);
  287.             select    (OLDDIR|{の全ファイル一覧表示ですか?},
  288.                 Wtime4,,
  289.                 {全ファイル一覧表示},
  290.                 {
  291.                 command({dir }|OLDDIR);
  292.                 loop    ({
  293.                     footnote({終了},{b});
  294.                     waitx();
  295.                     case(@xtype,101,{im({No})},
  296.                         201,{im({No})},,{im({Yes})});
  297.                     });
  298.                 im({Yes});
  299.                 },
  300.                 {     取    消     },
  301.                 );
  302.             },
  303.             {No},
  304.             {
  305.             footnote({ファイル一覧表示  }|OLDFILE);
  306.             command({dir }|OLDFILE);
  307.             loop    ({
  308.                 footnote({終了},{b});
  309.                 waitx();
  310.                 case    (@xtype,
  311.                     101,{im({No})},201,{im({No})},
  312.                     ,{im({Yes})});
  313.                 });
  314.             im({Yes});
  315.             });});};
  316.  
  317. /*    ファイル編集    */
  318. %EDIT    {
  319.     [flag]
  320.     var memono[1];
  321.     %FILEsel2{
  322.         [MSG,TYP]
  323.         SNDMSG({erande_f.snd});footnote(MSG);
  324.         case(TYP={},
  325.             {Yes},{NEWFILE:=@filesel},
  326.             {No},{NEWFILE:=@filesel(TYP)});
  327.         case(NEWFILE={},{Yes},{im({})},
  328.             {No},{
  329.             case(@wild(NEWFILE),
  330.                 {Yes},{
  331.                 display({ワイルドカード指定はできません\n});
  332.                 FILEsel2(MSG,TYP);
  333.                 },
  334.                 {No},{
  335.                 case(@nochar(@getcdir)==3,
  336.                     {Yes},{NEWFILE:=@getcdir|NEWFILE},
  337.                     {No},{NEWFILE:=@getcdir|{\}|NEWFILE});
  338.                 im(NEWFILE);
  339.                 })})};
  340.     %save    {
  341.         footnote({メモ}|memono|{を保存します});
  342.         %file    @FILEsel2({保存ファイル名を指定してください},);
  343.         case    (file<>{},
  344.             {Yes},{
  345.             CloseAllMemo;dispoff(!DEBUG);
  346.             delfile(file);dispoff({No});mwrite(file,memono);
  347.             mopen(memono);mclose(3);im({No});
  348.             },
  349.             {No},{im({Yes})}
  350.             )};
  351. %update{
  352.     footnote(OLDFILE|{を更新しています});
  353.     CloseAllMemo;
  354.     copyfile(OLDFILE,@body(OLDFILE,,{\})|{*.bak});
  355.     delfile(OLDFILE);
  356.     mwrite(OLDFILE,memono);mopen(memono);mclose(3);im({No})
  357.     };
  358.     %cancel    {
  359.         SNDMSG({kaknin_f.snd});footnote({文書編集を取消しますか?});
  360.         select({文書編集を取消しますか?},
  361.             Wtime4,{footnote({});im({Yes})},
  362.             {  は  い  },
  363.             {
  364.             CloseAllMemo;
  365.             delfile(TEMP2|{_mopmemo.bak});
  366.             mwrite(TEMP2|{_mopmemo.bak},memono);
  367.             mopen(memono);mclose(3);footnote({});im({No});
  368.             },
  369.             {  いいえ  },{footnote({});im({Yes})}
  370.             )
  371.     };
  372.     %rewrite{
  373.         footnote({編集中のメモ内容を清書しています});
  374.         CloseAllMemo;
  375.         %cdir @getcdir;
  376.         setcdir(CDIR);
  377.         dispoff(!DEBUG);
  378.         delfile(TEMP2|{_moptext.tmp});
  379.         delfile(TEMP2|{_moptext.new});
  380.         mwrite(TEMP2|{_moptext.tmp},memono);
  381.         command({txf -f -i }|TEMP2|{_moptext.tmp}|
  382.                 { -o }|TEMP2|{_moptext.new});
  383.           dispoff({No});
  384.         case    (@filechk(TEMP2|{_moptext.new}),
  385.             {Yes},
  386.             {
  387.             mclear(memono);
  388.             mread(TEMP2|{_moptext.new},memono);
  389.             %memomax    @mlast;
  390.             var    memono1    [2];
  391.             memono1:=memono+1;
  392.             loop    ({
  393.                 case    (memono1<=memomax,
  394.                     {Yes},
  395.                     {
  396.                     case(@mcheck!=0,{Yes},{mclose(1)});
  397.                     mopen(memono1);
  398.                     });
  399.                 memono1:=memono1+1;
  400.                 im(memono1<=memomax);
  401.                 });
  402.             case    (memomax>memono,
  403.                 {Yes},
  404.                 {
  405.                 case(@mcheck!=0,{Yes},{mclose(1)});
  406.                 mopen(memono,0,21,639,399,{w});
  407.                 },
  408.                 {No},
  409.                 {
  410.                 case(@mcheck!=0,{Yes},{mclose(1)});
  411.                 mopen(memono,0,21,639,459,{w});
  412.                 });
  413.             },
  414.             {No},
  415.             {
  416.             display({清書機能には TXF.EXE がパスの通った}|
  417.                     {ディレクトリに必要です\n});
  418.             wait(2);
  419.             %memomax    @mlast;
  420.             var    memono1    [1];
  421.             memono1:=memono+1;
  422.             loop    ({
  423.                 case    (memono1<=memomax,
  424.                     {Yes},
  425.                     {
  426.                     case(@mcheck!=0,{Yes},{mclose(1)});
  427.                     mopen(memono1);
  428.                     });
  429.                 memono1:=memono1+1;
  430.                 im(memono1<=memomax);
  431.                 });
  432.             case    (memomax>memono,
  433.                 {Yes},
  434.                 {
  435.                 case(@mcheck!=0,{Yes},{mclose(1)});
  436.                 mopen(memono,0,21,639,399,{w});
  437.                 },
  438.                 {No},
  439.                 {
  440.                 case(@mcheck!=0,{Yes},{mclose(1)});
  441.                 mopen(memono,0,21,639,459,{w});
  442.                 });
  443.             });
  444.         setcdir(cdir);
  445.         im({Yes});
  446.         };
  447.     /*    他のファイルを参照するためにメモを開く    */
  448.     %newmemo{
  449.         case    (@mlast==9,
  450.             {Yes},
  451.             {
  452.             footnote({メモ番号が一杯のため新しいメモが開けません});
  453.             wait(2);
  454.             },
  455.             {No},
  456.             {
  457.             CloseAllMemo;
  458.             mopen(memono,0,21,639,399);
  459.             mclose(1);
  460.             %memo1    @mlast+1;
  461.             madd(memo1,{\n});
  462.             mclear(memo1);
  463.             %file1    @filesel;
  464.             case    (file1<>{}&&@filechk(file1),
  465.                 {Yes},{mread(file1,memo1)});
  466.             mopen(memo1,0,221,639,459);
  467.             });
  468.         im({Yes});
  469.         };
  470.     %MEMONO    @mlast;
  471.     case    (MEMONO==9,
  472.         {Yes},
  473.         {
  474.         footnote({メモ9を利用してファイル編集を行います});
  475.         SNDMSG({kaknin_f.snd});
  476.         select({メモ9を利用してファイル編集を行います},
  477.             Wtime4,{memono:=0},
  478.             { は い },{memono:=9},
  479.             { いいえ },{memono:=0}
  480.             );
  481.         },
  482.         {No},{memono:=MEMONO+1}
  483.         );
  484.     case    (memono>0&&flag==1,
  485.         {Yes},
  486.         {
  487.         loop    ({
  488.             CloseAllMemo;
  489.             case(@FILEsel0({編集するファイルを選択}|
  490.                         {してください},)<>{},
  491.                 {Yes},
  492.                 {
  493.                 mclear(memono);
  494.                 mread(OLDFILE,memono);
  495.                 mopen(memono,0,21,639,459,{w});
  496.                 loop    ({
  497.                     footnote({更新取消参照清書UPLD},{b});
  498.                     waitx();
  499.                     case    (@xtype,
  500.                         101,update,    201,update,
  501.                         102,cancel,    202,cancel,
  502.                         103,newmemo,    203,newmemo,
  503.                         104,rewrite,    204,rewrite,
  504.                         105,{UP1(memono)},
  505.                         205,{UP1(memono)},
  506.                         ,{im({Yes})}
  507.                         );
  508.                     });
  509.                 im({Yes});
  510.                 },
  511.                 {No},{im({No})}
  512.                 );
  513.             });
  514.         },
  515.         {No},    /* 新規ファイル編集の場合 */
  516.         {
  517.         case    (memono>0,
  518.             {Yes},
  519.             {
  520.             CloseAllMemo;
  521.             madd(memono,{\n});
  522.             mclear(memono);
  523.             mopen(memono,0,21,639,459,{w});
  524.             loop    ({
  525.                 footnote({保存取消参照清書UPLD},{b});
  526.                 waitx();
  527.                 case    (@xtype,
  528.                     101,save,    201,save,
  529.                     102,cancel,    202,cancel,
  530.                     103,newmemo,    203,newmemo,
  531.                     104,rewrite,    204,rewrite,
  532.                     105,{UP1(memono)},
  533.                     205,{UP1(memono)},
  534.                     ,{im({Yes})}
  535.                     );
  536.                 });
  537.             });
  538.         });
  539.     };
  540.  
  541. /*    オートアップロード制御ファイル作成処理    */
  542. %UP1    {[memono]
  543.     %up2    {
  544.         footnote({メモの保存を行いますか?});SNDMSG({erande_f.snd});
  545.         select    ({メモの保存をおこないますか?},
  546.             Wtime4,{im({Yes})},
  547.             {ファイルに保存して終了},{save},
  548.             {ファイルに保存せずに終了},
  549.             {CloseAllMemo;mopen(memono);mclose(3);im({No})},
  550.             {    編集画面に戻る    },{im({Yes})}
  551.             )};
  552.     footnote({アップロード先は?});SNDMSG({erande_f.snd});
  553.     select    ({アップロード先は?},
  554.         Wtime4,{im({Yes})},
  555.         { テキストメール },{AUTOmail;up2},
  556.         {   ボード       },{AUTOforum;up2},
  557.         {シスオペ宛メール},{AUTOsmail;up2},
  558.         {  プロフィール  },{AUTOprof;up2},
  559.         {    取    消    },{im({Yes})}
  560.         )};
  561. %RESERV    {
  562.     case    (reserv,
  563.         { 1},{im({})},
  564.         { 2},{im({保留;})},
  565.         ,{im({})}
  566.         );
  567.     };
  568. /*    テキストメールアップ制御文作成    */
  569. %AUTOmail{
  570.     footnote({テキストメール送信制御文作成});
  571.     var mail[40];
  572.     var title[40];
  573.     var ok[2];
  574.     loop    ({SNDMSG({nyuryo_f.snd});
  575.         %a    @plane(    {cテキストメール送信\n}|
  576.                 {t  送信先ID  /xxxxxxxxxxxxxxxxxxxx}|
  577.                         {xxxxxxxxxxxxxxxxxxxx\n}|
  578.                 {s              / 検索 \n}|
  579.                 {t   タイトル   /xxxxxxxxxxxxxxxxxxxx}|
  580.                         {xxxxxxxxxxxxxxxxxxxx\n}|
  581.                 {r 送信予約     /予約  /保留\n}|
  582.                 {s              / 登録 / 取消 \n},
  583.                 mail,title,1);
  584.         mail:=    @head(@getline(a,1,1),{\n});
  585.         %search    @head(@getline(a,2,1),{\n});
  586.         title:=    @head(@getline(a,3,1),{\n});
  587.         %reserv    @head(@getline(a,4,1),{\n});
  588.         ok:=    @head(@getline(a,5,1),{\n});
  589.         im({No});    /* 右クリック時のデフォルト値 */
  590.         case    (search,
  591.             { 1},
  592.             {
  593.             %id1    @IDsearch;
  594.             case    (id1<>{},
  595.                 {Yes},
  596.                 {
  597.                 case    (mail<>{},
  598.                     {Yes},{mail:=mail|{,}|id1},
  599.                     {No},{mail:=id1}
  600.                     );
  601.                 });
  602.             mopen(memono,0,21,639,459,{w});im({Yes});
  603.             });
  604.         case    (ok,
  605.             { 1},
  606.             {case    (mail={}||title={},
  607.                 {No},
  608.                 {
  609.                 %file    @crefile(UP,{UP});
  610.                 CloseAllMemo;
  611.                 mwrite(UP2|file,memono);
  612.                 mopen(memono,0,21,639,459,{w});
  613.                 %cntl    @RESERV|{mail=}|mail|{;file=}
  614.                     |UP2|file|{ ;title=}|title|CRLF;
  615.                 write(UP2|{_mopres.ctl},cntl);
  616.                 im({No});
  617.                 },
  618.                 {Yes},
  619.                 {
  620.                 im({Yes})
  621.                 });
  622.             },
  623.             { 2},{im({No})}
  624.             );
  625.         });
  626.     };
  627. /*    ボード書き込み制御文作成    */
  628. %AUTOforum{
  629.     footnote({ボード制御文作成});
  630.     var forum[8];
  631.     var mes[3];
  632.     var reply[4];
  633.     var title[40];
  634.     var ok[2];
  635.     loop    ({SNDMSG({nyuryo_f.snd});
  636.         %a    @plane(    {cボードへの新規発言\n}|
  637.                 {t ネット名 /xxxxxxxx\n}|
  638.                 {cSIGボードの場合はネット名の変わりに\n}|
  639.                 {cパスワードを入力して下さい\n}|
  640.                 {t  ボード番号  /xxxxx\n}|
  641.                 {tコメント元番号/xxx\n}|
  642.                 {t   タイトル   /xxxxxxxxxxxxxxxxxxxx}|
  643.                         {xxxxxxxxxxxxxxxxxxxx\n}|
  644.                 {r 送信予約     /予約  /保留\n}|
  645.                 {s              / 登録 / 取消 \n},
  646.                 NET,mes,reply,title,1);
  647.         forum:=    @head(@getline(a,1,1),{\n});
  648.         mes:=    @head(@getline(a,2,1),{\n});
  649.         reply:=    @head(@getline(a,3,1),{\n});
  650.         title:=    @head(@getline(a,4,1),{\n});
  651.         %reserv    @head(@getline(a,5,1),{\n});
  652.         ok:=    @head(@getline(a,6,1),{\n});
  653.         im({No});    /* 右クリック時のデフォルト値 */
  654.         case    (ok,
  655.             { 1},
  656.             {
  657.             %file    @crefile(UP,{UP});
  658.             CloseAllMemo;
  659.             mwrite(UP2|file,memono);
  660.             mopen(memono,0,21,639,459,{w});
  661.             %cntl    @RESERV|{forum=}|forum|{;}|{mes=}|mes|{;}|
  662.                 {reply=}|reply|{;}|
  663.                 {file=}|UP2|file|{;}|{title=}|title|CRLF;
  664.             write(UP2|{_mopres.ctl},cntl);
  665.             im({No});
  666.             },
  667.             { 2},{im({No})}
  668.             );
  669.         });
  670.     };
  671. /*    シスオペ宛メールアップ制御文作成    */
  672. %AUTOsmail{
  673.     footnote({シスオペ宛メール送信制御文作成});
  674.     var smail[8];
  675.     var title[40];
  676.     var ok[2];
  677.     loop    ({
  678.         SNDMSG({nyuryo_f.snd});
  679.         %a    @plane(    {cシスオペ宛メール送信\n}|
  680.                 {t ネット名 /xxx\n}|
  681.                 {t   タイトル   /xxxxxxxxxxxxxxxxxxxx}|
  682.                         {xxxxxxxxxxxxxxxxxxxx\n}|
  683.                 {r 送信予約     /予約  /保留\n}|
  684.                 {s              / 登録 / 取消 \n},
  685.                 NET,title,1);
  686.         smail:=    @head(@getline(a,1,1),{\n});
  687.         title:=    @head(@getline(a,2,1),{\n});
  688.         %reserv    @head(@getline(a,3,1),{\n});
  689.         ok:=    @head(@getline(a,4,1),{\n});
  690.         im({No});    /* 右クリック時のデフォルト値 */
  691.         case    (ok,
  692.             { 1},
  693.             {case    (smail={}||title={},
  694.                 {No},
  695.                 {
  696.                 %file    @crefile(UP,{UP});
  697.                 CloseAllMemo;
  698.                 mwrite(UP2|file,memono);
  699.                 mopen(memono,0,21,639,459,{w});
  700.                 %cntl    @RESERV|{sysmail=}|smail|{;}|
  701.                     {file=}|UP2|file|{;}|
  702.                     {title=}|title|CRLF;
  703.                 });
  704.             write(UP2|{_mopres.ctl},cntl);
  705.             im({No});
  706.             },
  707.             { 2},{im({No})}
  708.             );
  709.         });
  710.     };
  711. /*    プロフィール情報書き込み制御文作成    */
  712. %AUTOprof{
  713.     footnote({プロフィール情報登録制御文作成});
  714.     var ok[2];
  715.     loop    ({
  716.         %a    @plane(    {cプロフィール情報登録\n}|
  717.                 {r 送信予約     /予約  /保留\n}|
  718.                 {s              / 登録 / 取消 \n},
  719.                 1);
  720.         %reserv    @head(@getline(a,1,1),{\n});
  721.         ok:=    @head(@getline(a,2,1),{\n});
  722.         im({No});    /* 右クリック時のデフォルト値 */
  723.         case    (ok,
  724.             { 1},
  725.             {
  726.             %file    @crefile(UP,{UP});
  727.             CloseAllMemo;
  728.             mwrite(UP2|file,memono);
  729.             mopen(memono,0,21,639,459,{w});
  730.             %cntl    @RESERV|{profile=}|{;}|
  731.                 {file=}|UP2|file|{;\n};
  732.             write(UP2|{_mopres.ctl},cntl);
  733.             im({No});
  734.             },
  735.             { 2},{im({No})}
  736.             );
  737.         });
  738.     };
  739. /*    NAPLPSファイル表示    */
  740. %NAPLPS    {
  741.     loop    ({
  742.         case(@FILEsel0({NAPLPSデータファイルを指定して下さい},{NPB})
  743.                 ={},
  744.             {Yes},{im({No})},
  745.             {No},
  746.             {
  747.             footnote({NAPLPSファイル表示  }|OLDFILE);
  748.             naplps(OLDFILE);
  749.             loop    ({
  750.                 footnote({終了},{b});waitx();
  751.                 case(@xtype,101,{napend;im({No});},
  752.                     201,{napend;im({No});},,{im({Yes})});
  753.                 });
  754.             im({Yes});
  755.             });
  756.         });
  757.     };
  758. /*    ファイル応用操作    (lha,ish,diet)    */
  759. /*    ファイル凍結    */
  760. %LHAarc    {
  761.     %FILEsel2{
  762.         SNDMSG({nyuryo_f.snd});
  763.         footnote({書庫ファイル名を入力して下さい  元ファイル=}|OLDFILE);
  764.         NEWFILE:=@filesel({LZH});NEWDIR:=@getcdir;
  765.         case(NEWFILE<>{},
  766.             {Yes},{case(@nochar(NEWDIR)==3,
  767.                 {Yes},{NEWFILE:=NEWDIR|NEWFILE},
  768.                 {No},{NEWFILE:=NEWDIR|{\}|NEWFILE})});
  769.         im(NEWFILE);
  770.         };
  771.  
  772.     loop    ({
  773.         case(@FILEsel1({圧縮凍結するファイルを指定して下さい},)={},
  774.             {Yes},{im({No})},
  775.             {No},
  776.             {
  777.             case(@FILEsel2={},{Yes},{im({No})},
  778.                 {No},
  779.                 {
  780.                 footnote({ファイル圧縮凍結処理中  }|
  781.                         OLDFILE|{ -> }|NEWFILE);
  782.                 command({lha u }|NEWFILE|{ }|OLDFILE);
  783.                 im({Yes});
  784.                 });
  785.             });
  786.         });
  787.     };
  788.  
  789. /*    .LZH ファイルを.EXE へ変換処理    */
  790. %LHAs    {
  791.     %FILEsel2{
  792.         SNDMSG({erande_f.snd});
  793.         footnote({変換先のディレクトリへ移動してネ(右クリックで終了) 変換元=}|
  794.                 OLDFILE);
  795.         %dmy    @filesel;
  796.         NEWDIR:=@getcdir;
  797.         case    (@nochar(NEWDIR)==3,
  798.             {Yes},{NEWFILE:=NEWDIR|@tail(OLDFILE,{\})},
  799.             {No},{NEWFILE:=NEWDIR|{\}|@tail(OLDFILE,{\})});
  800.         };
  801.     loop    ({
  802.         case    (@FILEsel0({変換するファイル(*.LZH)を選択して下さい},
  803.                     {LZH})={},
  804.             {Yes},{im({No})},
  805.             {No},
  806.             {
  807.             FILEsel2;
  808.             footnote({LHAファイル変換処理中}|OLDFILE|{->.EXE});
  809.             command({lha s }|OLDFILE);
  810.             im({Yes});
  811.             });
  812.         });
  813.     };
  814. /*    ファイル解凍    */
  815. %LHAext    {
  816.     %FILEsel2{
  817.         SNDMSG({erande_f.snd});
  818.         footnote({解凍先のディレクトリへ移動し右クリックして下さい  解凍元=}|
  819.                 OLDFILE);
  820.         %dmy    @filesel;NEWDIR:=@getcdir;
  821.         case(@nochar(NEWDIR)==3,
  822.             {Yes},{NEWFILE:=NEWDIR|@tail(OLDFILE,{\})},
  823.             {No},{NEWFILE:=NEWDIR|{\}|@tail(OLDFILE,{\})});
  824.         };
  825.  
  826.     loop    ({
  827.         case(@FILEsel0({解凍する *.LZH ファイルを指定して下さい},{LZH})
  828.                 ={},
  829.             {Yes},{im({No})},
  830.             {No},
  831.             {
  832.             FILEsel2;footnote({ファイル解凍処理中  }|OLDFILE);
  833.             command({lha x }|OLDFILE);im({Yes});
  834.             });
  835.         });
  836.     };
  837.  
  838. /*    凍結ファイル内容表示    */
  839. %LHAlst    {
  840.     loop    ({
  841.         case(@FILEsel0({内容表示する *.LZH ファイルを}|
  842.                 {指定して下さい},{LZH})={},
  843.             {Yes},{im({No})},
  844.             {No},
  845.             {
  846.             footnote({凍結ファイル内容表示中  }|OLDFILE);
  847.             command({lha l }|OLDFILE);im({Yes});
  848.             });
  849.         });
  850.     };
  851.  
  852. /*    ファイル石化    */
  853. %ISHstr    {
  854.     loop    ({
  855.         case(@FILEsel1({*.ISH ファイルに変換するファイルを}|
  856.                 {指定して下さい},)={},
  857.             {Yes},{im({No})},
  858.             {No},
  859.             {
  860.             case(OLDFILE={},{Yes},{im({No})},
  861.                 {No},
  862.                 {
  863.                 footnote({ISHファイル変換処理中  }|OLDFILE);
  864.                 command({ish }|OLDFILE|{ /ss});im({Yes});
  865.                 });
  866.             });
  867.         });
  868.     };
  869.  
  870. /*    ファイル解石    */
  871. %ISHres    {
  872.     loop    ({
  873.         case(@FILEsel1({復元する *.ISH ファイルを指定して下さい},{ISH})
  874.                 ={},
  875.             {Yes},{im({No})},
  876.             {No},
  877.             {
  878.             case(OLDFILE={},{Yes},{im({No})},
  879.                 {No},
  880.                 {
  881.                 footnote({ISHファイル復元処理中  }|OLDFILE);
  882.                 command({ish }|OLDFILE|{ /r});im({Yes});
  883.                 });
  884.             });
  885.         });
  886.     };
  887.  
  888. /*    ダイエット処理    */
  889. %DIETarc{
  890.     loop    ({
  891.         case(@FILEsel1({ダイエットするファイルを指定して下さい},)={},
  892.             {Yes},{im({No})},
  893.             {No},
  894.             {
  895.             case(OLDFILE={},{Yes},{im({No})},
  896.                 {No},
  897.                 {
  898.                 footnote({ダイエット処理中  }|OLDFILE);
  899.                 command({diet }|OLDFILE);im({Yes});
  900.                 });
  901.             });
  902.         });
  903.     };
  904.  
  905. /*    ダイエットファイル復元    */
  906. %DIETres{
  907.     loop    ({
  908.         case(@FILEsel1({復元するダイエットファイルを}|
  909.                     {指定して下さい},)={},
  910.             {Yes},{im({No})},
  911.             {No},
  912.             {
  913.             case(OLDFILE={},{Yes},{im({No})},
  914.                 {No},
  915.                 {
  916.                 footnote({ダイエットファイル復元処理中  }|
  917.                         OLDFILE);
  918.                 command({diet -ra }|OLDFILE);im({Yes});
  919.                 });
  920.             });
  921.         });
  922.     };
  923. /*    差分ファイル作成処理    */
  924. %BDIFF    {
  925.     %FILEsel2{
  926.         SNDMSG({nyuryo_f.snd});
  927.         footnote({新ファイル名を入力して下さい  旧ファイル=}|OLDFILE);
  928.         NEWFILE:=@filesel;NEWDIR:=@getcdir;
  929.         case(NEWFILE<>{},
  930.             {Yes},{case(@nochar(NEWDIR)==3,
  931.                 {Yes},{NEWFILE:=NEWDIR|NEWFILE},
  932.                 {No},{NEWFILE:=NEWDIR|{\}|NEWFILE})});
  933.         im(NEWFILE);
  934.         };
  935.  
  936.     loop    ({
  937.         case(@FILEsel0({差分を作成する旧ファイルを指定して下さい},)={},
  938.             {Yes},{im({No})},
  939.             {No},
  940.             {
  941.             case(@FILEsel2={},{Yes},{im({No})},
  942.                 {No},
  943.                 {
  944.                 footnote({ファイル差分作成処理中  }|
  945.                         OLDFILE|{ -> }|NEWFILE);
  946.                 command({BDIFF }|OLDFILE|{ }|NEWFILE);
  947.                 im({Yes});
  948.                 });
  949.             });
  950.         });
  951.     };
  952.  
  953. /*    差分ファイル復元処理    */
  954. %BUPDATE{
  955.     loop    ({
  956.         case(@FILEsel0({差分ファイルを指定して下さい},{BDF})={},
  957.             {Yes},{im({No})},
  958.             {No},
  959.             {
  960.             footnote({ファイル差分更新処理中  差分ファイル=}|OLDFILE);
  961.             command({BUPDATE }|OLDFILE);im({Yes});
  962.             });
  963.         });
  964.     };
  965. /*    ディレクトリ基本操作    */
  966. /*    ツリー表示    */
  967. %TREE    {
  968.     SNDMSG({erande_f.snd});
  969.     footnote({ツリー表示するディレクトリへ移動して右クリックして下さい});
  970.     filesel;
  971.     OLDDIR:=@getcdir;
  972.     footnote({ツリー表示中  }|OLDDIR);
  973.     command({tree }|OLDDIR);
  974.     WAITLOOP;
  975.     };
  976. /*    ディレクトリ作成    */
  977. %MKDIR    {
  978.     SNDMSG({erande_f.snd});
  979.     footnote({作成するディレクトリ名を指定して下さい});
  980.     NEWDIR:=@filesel;
  981.     OLDDIR:=@getcdir;
  982.     case    (@nochar(OLDDIR)==3,
  983.         {Yes},    {NEWDIR:=OLDDIR|NEWDIR},
  984.         {No},    {NEWDIR:=OLDDIR|{\}|NEWDIR}
  985.         );
  986.     mkdir2(NEWDIR);
  987.     };
  988. /*    ディレクトリ削除    */
  989. %RMDIR    {
  990.     SNDMSG({erande_f.snd});
  991.     footnote({削除するディレクトリへ移動して右クリックして下さい});
  992.     filesel;
  993.     OLDDIR:=@getcdir;
  994.     case    (@nochar(OLDDIR)==3,
  995.         {Yes},
  996.         {
  997.         SNDMSG({okasi_f.snd});
  998.         display({ルートディレクトリは削除できません\n});
  999.         },
  1000.         {No},
  1001.         {
  1002.         SNDMSG({kaknin_f.snd});
  1003.         footnote({削除ディレクトリ=}|OLDDIR);
  1004.         select    ({ディレクトリ }|OLDDIR|{ を削除してもいいですか?},
  1005.             Wtime4,,
  1006.             { は い },
  1007.             {
  1008.             setcdir2(@body(OLDDIR,,{\}));
  1009.             command({rmdir }|@tail(OLDDIR,{\}));
  1010.             },
  1011.             { いいえ },
  1012.             );
  1013.         });
  1014.     };
  1015. /*    ファイル基本操作の選択    */
  1016. %FILEman1{
  1017.     loop    ({
  1018.         SNDMSG({erande_f.snd});
  1019.         footnote({ファイル基本操作の処理を選択して下さい});
  1020.         select({ファイル基本操作メニュー},
  1021.             Wtime4,{im({No})},
  1022.             {ファイル表示     -type(more)},{DISPLAY;im({Yes})},
  1023.             {ファイル複写     -copy      },{COPY;im({Yes})},
  1024.             {ファイル移動     -copy&del  },{MOVE;im({Yes})},
  1025.             {ファイル名変更   -rename    },{RENAME;im({Yes})},
  1026.             {ファイル削除     -del       },{DELETE;im({Yes})},
  1027.             {全ファイル削除   -del *.*   },{DELall;im({Yes})},
  1028.             {ファイル一覧表示 -dir       },{DIR;im({Yes})},
  1029.             {        終       了         },{im({No})});
  1030.         });
  1031.     };
  1032. /*    ディレクトリ操作の選択    */
  1033. %DIRman    {
  1034.     loop    ({
  1035.         SNDMSG({erande_f.snd});
  1036.         footnote({ディレクトリ操作の処理を選択して下さい});
  1037.         select({ディレクトリ操作メニュー},
  1038.             Wtime4,{im({No})},
  1039.             {ツリー表示       =TREE     },{TREE;im({Yes})},
  1040.             {ディレクトリ作成 -mkdir    },{MKDIR;im({Yes})},
  1041.             {ディレクトリ削除 -rmdir    },{RMDIR;im({Yes})},
  1042.             {        終       了        },{im({No})}
  1043.             );
  1044.         });
  1045.     };
  1046. /*    ファイル応用操作の選択    */
  1047. %FILEman2{
  1048.     loop    ({
  1049.         SNDMSG({erande_f.snd});
  1050.         footnote({ファイル応用操作の処理を選択して下さい});
  1051.         select({ファイル応用操作メニュー},
  1052.             Wtime4,{im({No})},
  1053.             {ファイル圧縮凍結 >LHA u    },{LHAarc;im({Yes})},
  1054.             { .LZH から.EXEへ >LHA s    },{LHAs;im({Yes})},
  1055.             {ファイル解凍     >LHA x    },{LHAext;im({Yes})},
  1056.             {凍結ファイル一覧 >LHA l    },{LHAlst;im({Yes})},
  1057.             {ファイル石化     >ISH /s   },{ISHstr;im({Yes})},
  1058.             {ファイル解石     >ISH /r   },{ISHres;im({Yes})},
  1059.             {ファイル圧縮     >DIET     },{DIETarc;im({Yes})},
  1060.             {ファイル復元     >DIET -ra },{DIETres;im({Yes})},
  1061.             {ファイル差分作成 >BDIFF    },{BDIFF;im({Yes})},
  1062.             {ファイル差分更新 >BUPDATE  },{BUPDATE;im({Yes})},
  1063.             {        終       了        },{im({No})});
  1064.         });
  1065.     };
  1066. /************************************************************************
  1067. *    ファイル操作メインメニュー                    *
  1068. *************************************************************************/
  1069. /*    設定する情報の選択    */
  1070. %DORAFILE{
  1071.     loop    ({
  1072.         SNDMSG({erande_f.snd});
  1073.         footnote({ファイル編集を選択して下さい});
  1074.         select    ({ファイル編集メインメニュー},
  1075.             Wtime4,{im({No})},
  1076.             {   ファイル基本操作       },{FILEman1;im({Yes})},
  1077.             {   既存ファイル編集       },{EDIT(1); im({Yes})},
  1078.             {   新規ファイル編集       },{EDIT(0); im({Yes})},
  1079.             {   NAPLPS表示 -     },{NAPLPS;im({Yes})},
  1080.             { 応用操作(lha,ish,diet,bdiff) },{FILEman2;im({Yes})},
  1081.             {       ディレクトリ操作       },{DIRman;im({Yes})},
  1082.             {     終        了         },{im({No})}
  1083.             )})};
  1084. /*    作業領域定義    */
  1085. var    OLDFILE    [64];var    NEWFILE    [64];
  1086. var    OLDDIR    [64];var    NEWDIR    [64];
  1087. /*    実行文    */
  1088. DORAFILE;